package com.dingreading.cloud.app.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "store_sign_in")
public class StoreSignIn implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    /**
     * 公司uid
     */
    @ApiModelProperty(value = "公司uid")
    private String corpUid;

    /**
     * 门店id
     */
    @ApiModelProperty(value = "门店id")
    private Long storeId;

    /**
     * 门店uid
     */
    @ApiModelProperty(value = "门店uid")
    private String storeUid;

    /**
     * 门店名称
     */
    @ApiModelProperty(value = "门店名称")
    private String storeName;

    /**
     * 会员id
     */
    @ApiModelProperty(value = "会员id")
    private Long memberId;

    /**
     * 会员uid
     */
    @ApiModelProperty(value = "会员uid")
    private String memberUid;

    /**
     * 会员真实姓名
     */
    @ApiModelProperty(value = "会员真实姓名")
    private String fullName;

    /**
     * 会员系统姓名
     */
    @ApiModelProperty(value = "会员系统姓名")
    private String memberName;

    /**
     * 手机
     */
    @ApiModelProperty(value = "手机")
    private String phone;

    /**
     * 会员收费方式名
     */
    @ApiModelProperty(value = "会员收费方式名")
    private String costName;

    /**
     * 会员级别
     */
    @ApiModelProperty(value = "会员级别")
    private Integer memberLevel;

    /**
     * 到店状态记录
     * 1.到店 2.离店
     */
    @ApiModelProperty(value = "到店状态记录：1.到店 2.离店")
    private Integer status;

    /**
     * 在店时长；秒
     */
    @ApiModelProperty(value = "在店时长；秒")
    private Long duration;

    /**
     * 到店时间
     */
    @ApiModelProperty(value = "到店时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arrivalTime;

    /**
     * 离店时间
     */
    @ApiModelProperty(value = "离店时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leaveTime;

    /**
     * 签到类型
     */
    @ApiModelProperty(value = "")
    private Integer signInType;

    /**
     * 签退类型
     */
    @ApiModelProperty(value = "")
    private Integer signOutType;

    /**
     * 签到员工id
     */
    @ApiModelProperty(value = "")
    private Long signInStaffId;

    /**
     * 签退员工id
     */
    @ApiModelProperty(value = "")
    private Long signOutStaffId;
}
